<?php

/**
 * @desc Regular front cotroller combined with structure. 
 *
 */
class Kernel_Filter_FrontController_Regular extends Kernel_Filter_FrontController_Abstract 
{
    
    /**
     * Метод обработки пользовательского запроса.
     *
     */
    public function process() 
    {
        // control system language if it's necessary 
        $this->_forward(new Kernel_i18n_Structure(array(
            'callback' => array(&$this, 'dummy')), Application::getRequest()->get('lang')
            ));
        
        parent::process();
    }
    
    /**
    * @desc Callback method to tell about absence of language in URI obviously.
    * 
    */
    public function dummy($lang) 
    {
        $this->_abort('Language is not set');
    }

    /**
     * Возвращает описание компонента, который обработает запрошенное действие,
     * полученное из запроса.
     *
     * @return  Kernel_Token
     */
    protected function _getFilterToken() 
    {
        return Application::getRequest()->get('module');
    }

}
